Sometimes you inherit a non Rails or non Rack based web app such as PHP, Perl, Java / J2EE, etc. I like using cucumber for functional testing so I put together this project structure to use as a starting point for testing non-Ruby web-based applications.
I’ve included a simple search.feature example that uses Google. To switch to use your own development or staging server, adjust the URL in features/support/env.rb. This example project setup uses Capybara with Poltergeist but you can easily switch this to use Webdriver (Selenium) or Culerity or Webrat by editing features/support/env.rb.
Pull requests with updates/enhancements/bug fixes are always welcome!
-
features/*.feature : cucumber features
-
features/step_definitions/web_steps.rb : generic steps that apply to all features
-
features/step_definitions/_steps.rb : steps specific to an individual feature file
-
features/support/env.rb : configures the driver and the hostname to use
-
Ruby Gems rubygems.org/
-
Bundler: sudo gem install bundler rake
-
PhantomJS: install phantomjs
-
sudo bundle install
-
To run all features: rake
-
To run a specific feature: cucumber features/search.feature
-
To debug a specific step call save_and_open_page within the step
-
cukes.info (for general cucumber information)
-
github.com/jnicklas/capybara (for actions such as click_link, click_button, etc…)